package org.jeecg.modules.solitaire_app.app.service;

import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageInfo;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.solitaire_app.app.entity.VO.ReceivingSealCarOrderVO;
import org.jeecg.modules.solitaire_app.app.entity.VO.SealCarOrderDetailVO;
import org.jeecg.modules.solitaire_app.app.entity.VO.YsySealCarOrderVO;
import org.jeecg.modules.solitaire_app.app.entity.YsySealCarOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.solitaire_app.app.query.AddSealCarOrderQuery;
import org.jeecg.modules.solitaire_app.app.query.ReceivingOrderListQuery;
import org.jeecg.modules.solitaire_app.app.query.SealCarOrderQuery;
import org.jeecg.modules.solitaire_app.app.query.UserSealCarOrderQuery;
import org.json.JSONObject;

/**
 * @Description: 封车订单表
 * @Author: jeecg-boot
 * @Date: 2023-08-29
 * @Version: V1.0
 */
public interface IYsySealCarOrderService extends IService<YsySealCarOrder> {

    /*封车订单*/
    Result<String> addSealCarOrder(AddSealCarOrderQuery addSealCarOrderQuery);

    /*后台添加封车订单*/
    Result<String> adminAdd(AddSealCarOrderQuery addSealCarOrderQuery);

    /*查询用户的封车订单*/
    Result<PageInfo<YsySealCarOrderVO>> getUserSealCarOrders(UserSealCarOrderQuery userSealCarOrderQuery);

    /*封车订单详情*/
    Result<SealCarOrderDetailVO> getUserSealCarOrderDetail(String orderId);

    /*派单任务*/
    Result<PageInfo<YsySealCarOrderVO>> getSealCarOrderList(SealCarOrderQuery sealCarOrderQuery);

    /*接单*/
    Result<YsySealCarOrderVO> receivingOrder(String userId, String orderId);

    /*接单后操作（2-赶往炼厂，3-已到达炼厂）*/
    Result<YsySealCarOrderVO> receivingOrderUpdate(String userId, String orderId, int type);


    /*转单*/
    Result<YsySealCarOrderVO> transferOrder(String userId, String orderId, String transferUserId);

    /*查询驻场用户接单的封车订单列表*/
    Result<PageInfo<ReceivingSealCarOrderVO>> getUserReceivingOrderList(ReceivingOrderListQuery receivingOrderListQuery);

    /*查询订单分类*/
    Result<JSONArray> getOrderType(String userId);


}
